/**
 * 堆排序
 * 算法思路：找出第一小的数放在第一位，然后除开第一位，找第二小的数放在第二位，以此类推，最终得到排好序的数
 * 算法时间复杂度：O(n2)
 * 算法空间复杂度：O(1)
 */

export default function (pararr) {
    let arr = pararr;
    if (!Array.isArray(arr) || arr.length < 2) {
        return;
    }
    for(let i = 0;i<arr.length-1;i++){
        //表示最小值的索引起始位置
        let idx = i;
        for(let j = i+1;j<=arr.length-1;j++){
            if(arr[idx]>arr[j]){
                idx = j;
            }
        }
        //移动最小的元素
        arr.splice(i,0,arr.splice(idx,1)[0]);
    }
    return arr;
}